package com.xiaoyun.activiti02;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;

import java.util.List;

/**
 * 删除流程定义信息
 * 背后影响的表：
 * act_ge_bytearray
 * acr_re_deployment
 * act_re_procdef
 */
public class DeleteProcessDefinition {
    /**
     * 注意事项：
     * 1.当我们正在执行的这套没有完全审批结束的时候，流程删除定义信息就会失败
     * 2.如果公司层面要强制删除。可以deleteDeployment("1", true);
     * 参数true 代表级联删除，此时就会先删除没有完成的流程节点
     * 最后删除流程定义信息
     *
     * @param args
     */
    public static void main(String[] args) {
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

        RepositoryService repositoryService = processEngine.getRepositoryService();
        //参数代表流程部署id
        repositoryService.deleteDeployment("1");

//        repositoryService.deleteDeployment("1", true);
    }
}
